package cn.com.surker.production.util;

import cn.com.surker.enums.production.CalcBillTypeEnum;
import cn.com.surker.enums.production.CountBillTypeEnum;
import cn.com.surker.enums.sale.ContractSubsidyTypeEnum;
import cn.com.surker.enums.sale.SubsidyCountTypeEnum;
import cn.com.surker.util.StringUtils;

import java.util.HashMap;
import java.util.Map;

/**
 * @Author lucky
 * @create 2024年08月12 14:40
 * @desc 生产运输价计算公式
 */
public class ProductionPriceInfoUtil {

    /**
     * 转换单价单位描述
     * @return
     */
    public static Map<String, Object> convertSubsidyLabel() {
        Map<String, Object> map = new HashMap<>();
        for (int i = 0; i < CountBillTypeEnum.values().length; i++) {
            Integer type = CountBillTypeEnum.values()[i].getCode();
            for (int j = 0; j < CalcBillTypeEnum.values().length; j++) {
                Integer countType = CalcBillTypeEnum.values()[j].getCode();
                String key = CountBillTypeEnum.values()[i].getCode() + "_" + CalcBillTypeEnum.values()[j].getCode();
                String tip = "";
                switch (type){
                    case 0://方量
                        switch (countType) {
                            case 0://按补差方量计算
                                tip = "不足保底量补差每方补助/元;(例:运输保底10方,实际运输 6方,则[10-6] * 保底/运输单价 = 补贴金额)";
                                break;
                            case 1://按实际量计算
                                tip = "不足保底量每方补助/元;(例:运输保底10方,实际运输7方,则 7 * 保底/运输单价 = 补贴金额)";
                                break;
                            case 2://按车次计算
                                tip = "不足保底量每次补助/元;(例:运输保底10方,实际运输7方,则 次数 * 保底/运输单价 = 补贴金额)";
                                break;
                            case 3://按超量计算
                                tip = "超过保底量每方补助/元;(例:运输保底10方,实际运输17方,则 abs(10-7)[绝对值] * 保底/运输单价 = 补贴金额)";
                                break;
                        }
                        break;
                    case 1://吨位
                        switch (countType) {
                            case 0://按补差方量计算
                                tip = "不足保底量补差每吨补助/元;(例:运输保底10吨,实际运输 6吨,则[10-6] * 保底/运输单价 = 补贴金额)";
                                break;
                            case 1://按实际量计算
                                tip = "不足保底量每吨补助/元;(例:运输保底10吨,实际运输7吨,则 7 * 保底/运输单价 = 补贴金额)";
                                break;
                            case 2://按车次计算
                                tip = "不足保底量每次补助/元;(例:运输保底10吨,实际运输7吨,则 次数 * 保底/运输单价 = 补贴金额)";
                                break;
                            case 3://按超量计算
                                tip = "超过保底量每吨补助/元;(例:运输保底10吨,实际运输17吨,则 abs(10-7)[绝对值] * 保底/运输单价 = 补贴金额)";
                                break;
                        }
                        break;
                    case 2://车次
                        switch (countType) {
                            case 0://按补差方量计算
                                tip = "不足保底补差每车补助/元;(例:运输保底10吨,实际运输 6吨,则 车次 * 保底/运输单价 = 补贴金额)";
                                break;
                            case 1://按实际量计算
                                tip = "不足保底每车补助/元;(例:运输保底10吨,实际运输7吨,则 车次 * 保底/运输单价 = 补贴金额)";
                                break;
                            case 2://按车次计算
                                tip = "不足保底每车补助/元;(例:运输保底10吨,实际运输7吨,则 车次 * 保底/运输单价 = 补贴金额)";
                                break;
                            case 3://按超量计算
                                tip = "超过保底每车补助/元;(例:运输保底10吨,实际运输17吨,则 车次 * 保底/运输单价 = 补贴金额)";
                                break;
                        }
                        break;
                    case 3://运距
                        switch (countType) {
                            case 0://按补差方量计算
                                tip = "不足保底量补差每公里补助/元;(例:运输保底10公里,实际运输 6公里,则[10-6] * 保底/运输单价 = 补贴金额)";
                                break;
                            case 1://按实际量计算
                                tip = "不足保底量每公里补助/元;(例:运输保底10公里,实际运输7公里,则 7 * 保底/运输单价 = 补贴金额)";
                                break;
                            case 2://按车次计算
                                tip = "不足保底量每次补助/元;(例:运输保底10公里,实际运输7公里,则 次数 * 保底/运输单价 = 补贴金额)";
                                break;
                            case 3://按超量计算
                                tip = "超过保底量每公里补助/元;(例:运输保底10公里,实际运输17公里,则 abs(10-7)[绝对值] * 保底/运输单价 = 补贴金额)";
                                break;
                        }
                        break;
                }
                map.put(key, tip);
            }
        }
        return map;
    }
}
